/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.qp.smsmarketing.entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 *
 * @author waldenilson
 */
@Entity
@Table(name = "contato")
@NamedQueries({
    @NamedQuery(name = "Contato.findAll", query = "SELECT c FROM Contato c"),
    @NamedQuery(name = "Contato.findByIdContato", query = "SELECT c FROM Contato c WHERE c.idContato = :idContato"),
    @NamedQuery(name = "Contato.findByNomeContato", query = "SELECT c FROM Contato c WHERE c.nomeContato = :nomeContato"),
    @NamedQuery(name = "Contato.findByEmailContato", query = "SELECT c FROM Contato c WHERE c.emailContato = :emailContato"),
    @NamedQuery(name = "Contato.findBySmsContato", query = "SELECT c FROM Contato c WHERE c.smsContato = :smsContato"),
    @NamedQuery(name = "Contato.findBySexoContato", query = "SELECT c FROM Contato c WHERE c.sexoContato = :sexoContato")})
public class Contato implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
   @GeneratedValue(strategy= GenerationType.IDENTITY)
     @Basic(optional = false)
    @Column(name = "id_contato")
    private Integer idContato;
    @Column(name = "nome_contato")
    private String nomeContato;
    @Column(name = "email_contato")
    private String emailContato;
    @Column(name = "sms_contato")
    private String smsContato;
    @Column(name = "sexo_contato")
    private String sexoContato;

    @Column(name = "sobrenome_contato")
    private String sobrenomeContato;
    @Column(name = "dataani_contato")
    private String dataaniContato;

    @Column(name = "status_contato")
    private Boolean statusContato;

    @OneToMany(mappedBy = "contatoGrupoContato",cascade=CascadeType.ALL)
    private List<GrupoContato> grupoContatoList;
    
    @OneToMany(mappedBy = "contatoMensagemContato")
    private List<MensagemContato> mensagemContatoList;
    

    public Contato() {
    }

    public Contato(Integer idContato) {
        this.idContato = idContato;
    }

    public Integer getIdContato() {
        return idContato;
    }

    public void setIdContato(Integer idContato) {
        this.idContato = idContato;
    }

    public String getNomeContato() {
        return nomeContato;
    }

    public void setNomeContato(String nomeContato) {
        this.nomeContato = nomeContato;
    }

    public String getEmailContato() {
        return emailContato;
    }

    public void setEmailContato(String emailContato) {
        this.emailContato = emailContato;
    }

    public String getSmsContato() {
        return smsContato;
    }

    public void setSmsContato(String smsContato) {
        this.smsContato = smsContato;
    }

    public String getSexoContato() {
        return sexoContato;
    }

    public void setSexoContato(String sexoContato) {
        this.sexoContato = sexoContato;
    }

    public List<GrupoContato> getGrupoContatoList() {
        return grupoContatoList;
    }

    public void setGrupoContatoList(List<GrupoContato> grupoContatoList) {
        this.grupoContatoList = grupoContatoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idContato != null ? idContato.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Contato)) {
            return false;
        }
        Contato other = (Contato) object;
        if ((this.idContato == null && other.idContato != null) || (this.idContato != null && !this.idContato.equals(other.idContato))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return nomeContato+" "+sobrenomeContato;
    }

    /**
     * @return the sobrenomeContato
     */
    public String getSobrenomeContato() {
        return sobrenomeContato;
    }

    /**
     * @param sobrenomeContato the sobrenomeContato to set
     */
    public void setSobrenomeContato(String sobrenomeContato) {
        this.sobrenomeContato = sobrenomeContato;
    }

    /**
     * @return the dataaniContato
     */
    public String getDataaniContato() {
        return dataaniContato;
    }

    /**
     * @param dataaniContato the dataaniContato to set
     */
    public void setDataaniContato(String dataaniContato) {
        this.dataaniContato = dataaniContato;
    }

    /**
     * @return the statusContato
     */
    public Boolean getStatusContato() {
        return statusContato;
    }

    /**
     * @param statusContato the statusContato to set
     */
    public void setStatusContato(Boolean statusContato) {
        this.statusContato = statusContato;
    }

    /**
     * @return the mensagemContatoList
     */
    public List<MensagemContato> getMensagemContatoList() {
        return mensagemContatoList;
    }

    /**
     * @param mensagemContatoList the mensagemContatoList to set
     */
    public void setMensagemContatoList(List<MensagemContato> mensagemContatoList) {
        this.mensagemContatoList = mensagemContatoList;
    }
    
}
